extension StringEx on String? {
  bool get isNullOrEmpty => this == null || this!.isEmpty;

  bool get isNotNullOrEmpty => this != null && this!.isNotEmpty;

  /// 比较两个字符串是否相等，如果都为null或空串，通过[emptySame]来决定是否相等。如果需要相等则[emptySame]置为true即可，默认false
  bool equal(String? other, [bool emptySame = false]) {
    if (isNullOrEmpty && other.isNullOrEmpty) {
      return emptySame;
    }

    if (isNotNullOrEmpty && other.isNotNullOrEmpty) {
      return this == other;
    }

    // this 和 other 中至少有一个是null或空串，而另外一个是有值的，因此始终不相等
    return false;
  }

  /// 对显示在Text上的内容需要尾部省略号的字符串处理
  String ellipsis() {
    if (this == null) {
      return '';
    }
    return this!.replaceAll('', '\u200b');
  }
}
